package com.yy.permissions_general.module.system.file.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yy.permissions_general.common.constant.SystemConstant;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 附件
 * </p>
 *
 * @author YY
 * @since 2021-12-20
 */
@Data
@TableName("sys_file")
public class File extends Model<File>{

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 父id
     */
    @TableField("parent_id")
    private Integer parentId;

    /**
     * 附件名称
     */
    @TableField("file_name")
    private String fileName;

    /**
     * 附件名称(UUID)
     */
    @TableField("file_rename")
    private String fileRename;

    /**
     * 附件后缀
     */
    @TableField("file_suffix")
    private String fileSuffix;

    /**
     * 附件地址
     */
    @TableField("file_path")
    private String filePath;

    /**
     * 标识 0文件 1文件夹
     */
    @TableField("is_dir")
    private Integer isDir;

    /**
     * 标识 0默认 1图片
     */
    @TableField("is_img")
    private Integer isImg;

    /**
     * 文件大小
     */
    @TableField("file_size")
    private BigDecimal fileSize;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = SystemConstant.TIME_FORMAT)
    private Date createTime;

    /**
     * 创建人ID
     */
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Integer createId;

    /**
     * 创建名称
     */
    @TableField(value = "create_name", fill = FieldFill.INSERT)
    private String createName;

    /**
     * 修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    @JsonFormat(pattern = SystemConstant.TIME_FORMAT)
    private Date updateTime;

    /**
     * 修改人ID
     */
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    private Integer updateId;

    /**
     * 修改名称
     */
    @TableField(value = "update_name", fill = FieldFill.UPDATE)
    private String updateName;

    /*排序字段名*/
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String orderName;
    /*排序方式*/
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String orderWay;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
